﻿using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SuperKit
{
    class ShellKit {
        public static string ZipExe => ConfigReader.Instance.GetString("7ZPath");
        public static string FFMpegExe => ConfigReader.Instance.GetString("FFMpegPath");


        public static string ExecuteFFMpeg(string cmd) {
            Process p = new Process();
            //设置要启动的应用程序
            p.StartInfo.FileName = FFMpegExe;
            p.StartInfo.Arguments = cmd;
            //是否使用操作系统shell启动
            p.StartInfo.UseShellExecute = true;
            //不显示程序窗口
            p.StartInfo.CreateNoWindow = false;
            //启动程序
            p.Start();

            //等待程序执行完退出进程
            p.WaitForExit();
            p.Close();

            return Kit.EMPTY;
        }


        public static string ExecuteZip(string cmd) {
            Process p = new Process();
            //设置要启动的应用程序
            p.StartInfo.FileName = ZipExe;
            p.StartInfo.Arguments = cmd;
            //是否使用操作系统shell启动
            p.StartInfo.UseShellExecute = false;
            //不显示程序窗口
            p.StartInfo.CreateNoWindow = true;
            //启动程序
            p.Start();

            //等待程序执行完退出进程
            p.WaitForExit();
            p.Close();

            return Kit.EMPTY;
        }

        public static string ExecuteCommand(string cmd) {
            Process p = new Process();
            //设置要启动的应用程序
            p.StartInfo.FileName = Path.Combine(AppContext.BaseDirectory, @"SuperKit.exe");
            p.StartInfo.Arguments = cmd;
            //是否使用操作系统shell启动
            p.StartInfo.UseShellExecute = false;
            // 接受来自调用程序的输入信息
            //p.StartInfo.RedirectStandardInput = true;
            //输出信息
            //p.StartInfo.RedirectStandardOutput = true;
            // 输出错误
            //p.StartInfo.RedirectStandardError = true;
            //不显示程序窗口
            //p.StartInfo.CreateNoWindow = true;
            //启动程序
            p.Start();

            //等待程序执行完退出进程
            p.WaitForExit();
            p.Close();

            return Kit.EMPTY;
        }

    }
}
